// 引入vue 单例设置DOM的操作
import Vue from 'vue'
Vue.directive('focus', {
  inserted (el) {
    VantFn(el)
  },
  update (el) {
    VantFn(el)
  }
})
// 封装一个函数 需要多次调用
function VantFn (el) {
  //  e 是原生节点获取到的就是本身 如果不是原生而是组件那就获取到的是当期组件的根标签 e.tarName
  // 定义一个数组判断是否满足所需要的标签 tag不会r哈
  if (['INPUT', 'TEXTAREA'].includes(el.tagName)) {
    // 满足就就阔以对其操作
    el.focus()
    return
  }
  // 一层一层的执行找到就返回 退出函数 直接抛出错误信息就行
  // 如果是个组件的跟标签那就从标签开始找需要的input textarea
  let node = el.querySelector('input')
  if (node) {
    node.focus()
    return
  }
  node = el.querySelector('textarea')
  if (node) {
    node.focus()
    return
  }
  // 如果都没有找到那就抛出错误
  throw new Error('请将指令放在合适的位置哈')
}
// 最后在导出哈
// 当元素一创建就执行 inserted 柜子函数一次
